package com.xunfang.controller;

import com.xunfang.bean.Book;
import com.xunfang.bean.Result;
import org.springframework.web.bind.annotation.*;

import java.net.URLDecoder;

/**
 * @author yellow Docter
 * @date 2023 -10-12
 * @desc
 * 总结：restful
 *    查询是 get、修改是put请求、删除是delete、添加是post请求   restful请求
 *    参数值都是在 Url上面进行拼接
 *    http://localhost:8080/book/101   get请求       查询
 *    http://localhost:8080/book/101   delete请求    删除
 *
 *    用来简化url地址的写法。url地址变少，维护会更简单。
 */
@RestController
@RequestMapping("book")
public class BookController {

    //添加
    //http://localhost:8080/book/add?id=1&name=java%E7%BC%96%E7%A8%8B%E6%80%9D%E6%83%B3&author=jack
    //  java%E7%BC%96%E7%A8%8B%E6%80%9D%E6%83%B3 啥意思 ？
    //  网络中有数据传输： 存在特殊编码、控制#、中文  java中有url编码、在URL上传递参数如果有特殊符号、会URL编码进行转换
    //  tomcat 服务器 会自动识别编码格式进行解码、不会出现乱码

    //所有的方法的请求路径都一致、通过 @RequestMapping 中的method 进行区分
    // 添加  post请求     method = RequestMethod.POST
    //      可以优化:    @PostMapping
    // 删除  delete请求   method = RequestMethod.DELETE
    //                  @DeleteMapping
    // 修改  put请求      method = RequestMethod.PUT
    //                  @PutMapping
    // 查询  get请求      method = RequestMethod.GET
    //                  @GetMapping

//    @RequestMapping(method = RequestMethod.POST)
    @PostMapping
    public Result addBook(Book book){
        System.out.println("book = " + book);
        return Result.ok("添加成功");
    }

    //删除
//    @RequestMapping(method = RequestMethod.DELETE)
    @DeleteMapping
    public Result deleteBook(Integer id){
        System.out.println("id = " + id);
        return Result.ok("删除成功");
    }

    //修改
//    @RequestMapping(method = RequestMethod.PUT)
    @PutMapping
    public Result updateBook(Book book){
        System.out.println("book = " + book);
        return Result.ok("修改成功");
    }

    //查询
    @RequestMapping(method = RequestMethod.GET)
    @GetMapping
    public Result findBook(Integer id){

        Book book = new Book();
        book.setId(101);
        book.setName("活着");
        book.setAuthor("余华");
        return Result.ok(book);
    }

}
